﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using QLNHK.BLL;

namespace QLNHK
{
    public partial class FrmChuyenNhanKhau : FrmBase
    {
        public int IDNhanKhau;
        public bool IsChuyenNhanKhau;
        private NhanKhau objNK;

        public FrmChuyenNhanKhau()
        {
            InitializeComponent();
        }

        private void FrmChuyenNhanKhau_Load(object sender, EventArgs e)
        {
            try
            {
                Cursor = Cursors.WaitCursor;

                if (IsChuyenNhanKhau)
                    Text = "Chuyển nhân khẩu";
                else
                    Text = "Cắt khẩu";

                Global.setDataToComboTinhTrang(cboTinhTrang, false);
                cboTinhTrang.Value = IsChuyenNhanKhau ? (int)ETinhTrang.DaChuyenDi : (int)ETinhTrang.DaCatKhau;
                dtNgayChuyenDi.Value = System.DBNull.Value;

                LoadData();
            }
            catch (Exception ex)
            {
                Logger.LocalLogger.Instance().WriteMessage(ex);
                MessageBox.Show(ex.Message);
            }
            finally { Cursor = Cursors.Default; }
        }

        private void LoadData()
        {
            try
            {
                Cursor = Cursors.WaitCursor;

                if (IDNhanKhau > 0)
                {
                    objNK = NhanKhau.Load(IDNhanKhau);
                    txtMaNhanKhau.Text = objNK.MaNhanKhau;
                    txtHoTen.Text = objNK.HoLot + " " + objNK.Ten;
                    txtNoiChuyenDen.Focus();
                }
            }
            catch (Exception ex)
            {
                Logger.LocalLogger.Instance().WriteMessage(ex);
                MessageBox.Show(ex.Message);
            }
            finally { Cursor = Cursors.Default; }
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            try
            {
                Cursor = Cursors.WaitCursor;

                if (objNK == null)
                    return;

                errorProvider1.Clear();
                bool isValid = true;
                isValid &= Validations_Infragistics.ValidateNull(dtNgayChuyenDi, errorProvider1, "Chuyển đi ngày");
                isValid &= Validations_Infragistics.ValidateNull(txtNoiChuyenDen, errorProvider1, "Nơi chuyển đến");
                if (!isValid)
                    return;

                if (DialogResult.OK == MessageBox.Show("Bạn có chắc chắn muốn " + (IsChuyenNhanKhau ? "Chuyển" : "Cắt") + " nhân khẩu này không?", this.Text, MessageBoxButtons.OKCancel, MessageBoxIcon.Question))
                {
                    objNK.NoiChuyenDen = txtNoiChuyenDen.Text.Trim();
                    objNK.NgayChuyenDi = dtNgayChuyenDi.DateTime.Date;
                    objNK.TinhTrang = System.Convert.ToInt32(cboTinhTrang.Value);
                    objNK.Update();

                    //Tao thong tin qua trinh thay doi
                    NhanKhau_QuaTrinh quaTrinh = new NhanKhau_QuaTrinh();
                    string noiDungThayDoi = string.Format("{0}, {1}", dtNgayChuyenDi.DateTime.ToString(Global.DATE_FORMAT), txtNoiChuyenDen.Text);
                    quaTrinh.NgayCapNhat = System.DateTime.Now;
                    quaTrinh.LoaiCapNhat = System.Convert.ToInt32(cboTinhTrang.Value);
                    quaTrinh.NoiDungThayDoi = noiDungThayDoi;
                    quaTrinh.NhanKhauID = IDNhanKhau;
                    quaTrinh.CanBoQuanLyID = frmMain.ObjNguoiDung.ID_NguoiDung;
                    quaTrinh.Insert();

                    MessageBox.Show("Đã chuyển nhân khẩu thành công", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
            }
            catch (Exception ex)
            {
                Logger.LocalLogger.Instance().WriteMessage(ex);
                MessageBox.Show(ex.Message);
            }
            finally { Cursor = Cursors.Default; }
        }

        private void btnDong_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
